///*******************************************************************************
// * Copyright (c) 2000, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.ui.tests.keys;
//
//import org.eclipse.jface.bindings.keys.KeySequence;
//import org.eclipse.jface.bindings.keys.KeySequenceText;
//import org.eclipse.jface.bindings.keys.ParseException;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.layout.RowLayout;
//import org.eclipse.swt.widgets.Display;
//import org.eclipse.swt.widgets.Shell;
//import org.eclipse.swt.widgets.Text;
//import org.eclipse.ui.tests.harness.util.UITestCase;
//
///**
// * Tests Bug 42024
// *
// * @since 3.0
// */
//public class Bug42024Test extends UITestCase {
//
// /** The shell on which the <code>KeySequenceText</code> is placed. */
// private Shell shell = null;
//
// /** The instance of <code>KeySequenceText</code> we should tinker with. */
// private KeySequenceText text = null;
//
// /**
// * Constructor for Bug42024Test.
// *
// * @param name
// * The name of the test
// */
// public Bug42024Test(String name) {
// super(name);
// }
//
// /*
// * @see TestCase#setUp()
// */
// protected void doSetUp() throws Exception {
// super.doSetUp();
//
// // Create a window with a KeySequenceText
// Display display = Display.getCurrent();
// shell = new Shell(display);
// shell.setLayout(new RowLayout());
// text = new KeySequenceText(new Text(shell, SWT.BORDER));
//
// // Open it
// shell.pack();
// shell.open();
// }
//
// protected void doTearDown() throws Exception {
// super.doTearDown();
//
// // Close and destroy the window
// shell.close();
// shell.dispose();
//
// // Release the memory.
// shell = null;
// text = null;
// }
//
// /**
// * Tests that the limiting facility on KeySequenceText allows an arbitrary
// * number of key strokes, when the the limit is set to "infinite". In this
// * case, we will use a six stroke sequence.
// *
// * @throws ParseException
// * If the test sequence cannot be parsed.
// */
// public void testInfiniteStrokes() throws ParseException {
// String keySequenceText = "A B C D E F"; //$NON-NLS-1$
// KeySequence keySequence = KeySequence.getInstance(keySequenceText);
// text.setKeyStrokeLimit(KeySequenceText.INFINITE);
// text.setKeySequence(keySequence);
// assertEquals(
// "Infinite limit but sequence changed.", keySequence, text.getKeySequence()); //$NON-NLS-1$
// }
//
// /**
// * Tests that inserting a key sequence of matching length causes no change,
// * but inserted a key sequence of one greater does cause a change --
// * specifically truncation.
// *
// * @throws ParseException
// * If the test sequences cannot be parsed.
// */
// public void testTruncation() throws ParseException {
// final int length = 4;
// text.setKeyStrokeLimit(length);
//
// // Test matching length.
// String matchingKeySequenceText = "1 2 3 4"; //$NON-NLS-1$
// KeySequence matchingKeySequence = KeySequence
// .getInstance(matchingKeySequenceText);
// text.setKeySequence(matchingKeySequence);
// assertEquals(
// "Limit of four change four stroke sequence.", matchingKeySequence, text.getKeySequence()); //$NON-NLS-1$
//
// // Test one greater than length.
// String longerKeySequenceText = "1 2 3 4 5"; //$NON-NLS-1$
// KeySequence longerKeySequence = KeySequence
// .getInstance(longerKeySequenceText);
// text.setKeySequence(longerKeySequence);
// assertEquals(
// "Limit of four did not truncate to four.", length, text.getKeySequence().getKeyStrokes().length); //$NON-NLS-1$
// }
//
// /**
// * Tests that a zero-length stroke can be inserted into the KeySequenceText --
// * regardless of whether the stroke limit is some positive integer or
// * infinite.
// */
// public void testZeroStroke() {
// KeySequence zeroStrokeSequence = KeySequence.getInstance();
//
// // Test with a limit of four.
// text.setKeyStrokeLimit(4);
// text.setKeySequence(zeroStrokeSequence);
// assertEquals(
// "Limit of four changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$
//
// // Test with an infinite limit.
// text.setKeyStrokeLimit(KeySequenceText.INFINITE);
// text.setKeySequence(zeroStrokeSequence);
// assertEquals(
// "Infinite limit changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$
// }
//}